/* Platform-specific definitions */

#ifndef MC_PLATFORM_HPP
#define MC_PLATFORM_HPP

/* The typeof operator */
#if defined(__GNUC__)
	/* GCC will complain about decltype with -std=c++98 */
	#define MC_TYPEOF(e) __typeof__(e)
#elif defined(_MSC_VER) && _MSC_VER >= 1600
	/* Visual C++ 2010 or higher */
	#define MC_TYPEOF(e) decltype(e)
#else
	#error Define MC_TYPEOF for your platform
#endif

#ifdef _MSC_VER
	#ifdef EXPORT_API
		#define APICALL __declspec(dllexport)
	#else
		#define APICALL __declspec(dllimport)
	#endif
#else
	#define APICALL
#endif

#endif /* MC_PLATFORM_HPP */
